package main

import (
	"ddl_checker/internal/clipboard"
	"ddl_checker/internal/config"
	"ddl_checker/internal/gui/app"
	"ddl_checker/pkg/logger"
)

func main() {
	// 初始化全局配置
	if err := config.InitGlobalConfig(); err != nil {
		panic("配置初始化失败: " + err.Error())
	}

	// 初始化日志系统
	logConfig := &logger.Config{
		Level:  config.GetString("LOG_LEVEL", "info"),
		Format: "console",
	}
	if err := logger.Initialize(logConfig); err != nil {
		// 这里仍然使用panic，因为日志系统初始化失败时无法记录日志
		panic("日志系统初始化失败: " + err.Error())
	}
	defer logger.Close()

	logger.Info("启动 DDL Checker Excel风格工具")

	// 初始化剪贴板管理器
	clipboardManager, err := clipboard.NewClipboardManager()
	if err != nil {
		logger.Errorf("剪贴板管理器初始化失败: %v", err)
		// 不退出程序，只是Excel剪贴板功能不可用
	}

	// 创建应用
	guiApp := app.NewDDLCheckerApp()
	guiApp.SetClipboardManager(clipboardManager)

	// 创建UI
	guiApp.BuildUI()

	// 显示窗口并运行
	guiApp.Run()
}
